Những vấn đề với các hàm nội tuyến Hàm_nội_tuyến

Bên cạnh những vấn đề liên quan đến khai triển nội tuyến nói chung, với vai trò một tính năng của ngôn ngữ, hàm nội tuyến có thể không đáng giá như người ta có thể hình dung, vì một số lý do sau:

  • Thông thường, để quyết định xem một hàm cụ thể nào đó có nên là hàm nội tuyến hay không, trình biên dịch có vị trí tốt hơn con người; cụ thể, trình biên dịch có thể không muốn hoặc không có khả năng nội tuyến hóa nhiều hàm mà con người muốn nó làm.
  • Trong quá trình phát triển của các hàm, chúng có thể trở nên thích hợp làm hàm nội tuyến, hoặc trở nên không còn thích hợp như đã từng. Mặc dù đánh dấu một hàm là nội tuyến hay không còn nội tuyến là một việc dễ dàng hơn việc chuyển đổi các hàm sang macro và ngược lại, công việc này vẫn đòi hỏi thêm công sức bảo trì, mà trong phần lớn các trường hợp, việc làm này đem lại lợi ích tương đối nhỏ.
  • Đối với các chương trình biên dịch đơn giản viết bằng C, việc sử dụng quá nhiều hàm nội tuyến có thể làm tăng thời gian biên dịch, do phần thân của các hàm đó phải được bổ sung dưới dạng văn bản vào bất cứ tập mã nguồn nào sử dụng chúng. (có thể thấy khi xem mã nguồn sau khi biên dịch sơ thảo (pre-compiled source) mà bộ biên dịch tạo ra).

Về các vấn đề với chính bản thân quá trình tối ưu hóa, thay vì về tính năng của ngôn ngữ, xem các vấn đề trong khai triển nội tuyến.

Liên quan